package ${configuration.javaModelPackage}.mapper;


import ${configuration.javaModelPackage}.entity.${configuration.domainObjectName};
import tk.mybatis.mapper.common.Mapper;

/**
 *
 * <p>Title: ${configuration.domainObjectName}Mapper</p>
 * <p>Description: </p>
 * 
 * @author ${configuration.author}
 * @date ${.now?string("yyyy-MM")}
 */
public interface ${configuration.domainObjectName}Mapper extends Mapper<${configuration.domainObjectName}> {

    
    /**
    * 获取所有数据
    * @return
    */
    public List<${configuration.domainObjectName}> getList();
    
    /**
    * 分页获取数据
    * @param pageBounds
    * @return
    */
    public PageList<${configuration.domainObjectName}> getList( PageBounds pageBounds );
    
    /**
    * 根据条件获取所有数据
    * @param ${configuration.orgDomainObjectName}
    * @return
    */
    public List<${configuration.domainObjectName}> getPageList( ${configuration.domainObjectName} ${configuration.orgDomainObjectName} );


    /**
    * 根据条件分页获取数据
    * @param ${configuration.orgDomainObjectName}
    * @param pageBounds
    * @return
    */
    public PageList<${configuration.domainObjectName}> getPageList(${configuration.domainObjectName} ${configuration.orgDomainObjectName}, PageBounds pageBounds );
    
    /**
    * 根据条件获取所有数据
    * @param map
    * @return
    */
    public List<${configuration.domainObjectName}> getPageListByMap( Map<String, Object> map );
    
    /**
    * 根据条件分页获取数据
    * @param map
    * @param pageBounds
    * @return
    */
    public PageList<${configuration.domainObjectName}> getPageListByMap(Map<String, Object> map, PageBounds pageBounds );
    
    /**
    * 根据ID获取数据
    * @param ${configuration.pkName}
    * @return
    */
    public ${configuration.domainObjectName} selectByPrimaryKey( ${configuration.pkTypeJava} ${configuration.pkName} );
    
    /**
    * 根据条件获取数据
    * @param ${configuration.orgDomainObjectName}
    */
    public ${configuration.domainObjectName} selectBy( ${configuration.domainObjectName} ${configuration.orgDomainObjectName} );
    
    /**
    * 创建
    * @param ${configuration.orgDomainObjectName}
    */
    public void create( ${configuration.domainObjectName} ${configuration.orgDomainObjectName} );
    
    /**
    * 有选择的创建新数据
    * @param ${configuration.orgDomainObjectName}
    */
    public void createSelective(${configuration.domainObjectName} ${configuration.orgDomainObjectName});
    
    /**
    * 有选择的批量创建新数据
    * @param list
    */
    public void createSelectiveBatch(List<${configuration.domainObjectName}> list);
    
    /**
    * 根据ID更新
    * @param ${configuration.orgDomainObjectName}
    */
    public void update(${configuration.domainObjectName} ${configuration.orgDomainObjectName});
    
    /**
    * 根据ID有条件的更新
    * @param ${configuration.orgDomainObjectName}
    */
    public void updateSelective(${configuration.domainObjectName} ${configuration.orgDomainObjectName});
    
    /**
    * 根据条件进行更新
    * @param ${configuration.orgDomainObjectName} 更新内容
    * @param condition 条件
    */
    public void updateByWhere( @Param("item") ${configuration.domainObjectName} ${configuration.orgDomainObjectName} , @Param("condition") ${configuration.domainObjectName} condition );
    
    /**
    * 根据ID删除
    * @param ${configuration.pkName}
    */
    public void deleteByPrimaryKey(${configuration.pkTypeJava} ${configuration.pkName});
    
    /**
    * 根据条件进行删除
    * @param ${configuration.orgDomainObjectName}
    */
    public void deleteBy(${configuration.domainObjectName} ${configuration.orgDomainObjectName});
    
    /**
    * 根据ID集合进行批量删除
    * @param list
    */
    public void deleteBatch(List<${configuration.pkTypeJava}> list);

}



